In real world monitoring applications, moving object detection remains to be a challenging task due to factors such as background complexity, illumination variations, noise, and occlusions. As a fundamental first step in many computer vision applications such as object tracking, behavior understanding, object or event recognition, and automated video surveillance, various motion detection algorithms have been developed ranging from simple approaches to more sophisticated ones [11].